삼성 기출 [ BOJ / Python ] 14890번 경사로 이번 문제는 삼성 기출 문제로, 조건들을 따져가며 구현하는 방식으로 해결하였다. 컬럼을 확인하는 함수 chk_column과 로우를 확인하는 함수 chk_row를 작성하였다. 아래에서 위로 향하며 연속되는 수의 갯수를 DP를 이용하여 dp1에 저장한다. 위에서 아래로 향하며 연속되는 수의 갯수를 DP를 이용하여 dp2에 저장한다. 아래에서 위로 향하며 인접한 값과 비교하며 1 차이가 날 경우에... 삼성 기출pythonbojboj [ BOJ / Python ] 15683번 감시 이번 문제는 삼성 기출 문제로 백트레킹과 구현을 통해 해결하였다. 처음에 백트레킹을 생각했지만, 브루트포스로도 해결이 가능할 것이라 생각하였고, 브루트포스로 구현을 하였다. cctv의 위치와 종류를 튜플로 하여 cctvs리스트에 담고, 이를 종류의 내림차순으로 정렬한 후에 cctv가 볼 수 있는 구간의 크기를 모두 구하여 이 중 큰 것을 따라가도록 구현하였다. 그러나 17%에서 오답처리 되었... 삼성 기출back trackingpythonbojback tracking [ BOJ / Python ] 17142번 연구소 3 바이러스들의 위치를 저장할 리스트 viruses를 선언한다. n번 반복하는 i에 대한 for문을 돌린다. -> n번 반복하는 j에 대한 for문을 돌린다. --> 만약 grid[i][j]가 2와 같을 경우, ---> viruses에 (i, j)를 넣는다. combinations를 저장할 리스트 cases를 선언한다. get_combs 함수를 cur, result를 인자로 갖도록 선언한다. -... python삼성 기출bojback trackingBFSBFS [ BOJ / Python ] 16234번 인구 이동 이번 문제는 삼성 기출 문제로 BFS를 통해 개방할 수 있는 국경선들을 모두 체크하고, 현재 위치의 나라와 연결된 모든 나라들을 구하여 그 나라들의 인구수를 평균값으로 갱신해준다. n, l, r을 입력받는다. ground를 입력받는다. dy, dx에 4가지 방향을 저장한다. bfs함수를 sy, sx를 인자로 갖도록 선언한다. -> q를 deque로 선언한다. -> q에 (sy, sx)를 넣는... 삼성 기출pythonBFSbojBFS [ BOJ / Python ] 17140번 이차원 배열과 연산 인덱스 에러가 계속 발생하였는데, 이는 a[r][c]를 검사하는 과정에서 행, 열의 길이가 r, c보다 작을 때 발생하는 것이었다. 이 부분은 검사를 하기 전에 행과 열의 길이가 r, c보다 클 경우에만 a[r][c]를 검사하도록 하여 해결하였다. r, c, k를 입력받는다. 결과를 저장할 변수 answer를 0으로 선언한다. cul_r 함수를 선언한다. -> a의 길이만큼 반복하는 i에 대... 삼성 기출pythonbojboj [ BOJ / Python ] 20055번 컨베이어 벨트 위의 로봇 이번 문제는 deque를 이용하여 해결하였다. 우선 조건대로 deque의 rotate()함수를 이용하여 벨트와 로봇을 한칸씩 이동시키고, n-1인덱스에 위치하는 로봇을 없애준다. 그리고 로봇 리스트를 뒤에서부터 순회하며 다음 칸에 로봇이 없고 다음 칸의 내구도가 0보다 클 때에만 로봇을 한칸 이동시켜준다. 이때에도 로봇이 n-1인덱스에 위치하게 될 수 있으므로 n-1위의 로봇을 없애준다. 그... python삼성 기출bojDequeDeque [ BOJ / Python ] 13458번 시험 감독 이번 문제는 반복문 하나로 간단하게 해결할 수 있었다. 반복문 안에서 현재 시험장에서 b를 빼주고, 만약 현재 시험장의 학생 수가 0보다 클 경우에만 시험장의 학생 수가 c로 나눠 떨어진다면 몫을 결과 변수에 더하고, 나눠떨어지지 않으면 몫+1을 결과 변수에 더했다. n을 입력받는다. 시험장의 학생 수를 나타내는 리스트 student를 입력받는다. b, c를 입력받는다. 결과 변수 answe... python삼성 기출bojboj [ BOJ / Python ] 16236번 아기 상어 n을 입력받는다. 공간을 grid에 입력받는다. 상어의 위치를 나타내는 변수 cur_y, cur_x를 0으로 선언한다. n번 반복하는 i에 대한 for문을 돌린다. -> n번 반복하는 j에 대한 for문을 돌린다. --> 만약 grid[i][j]가 9일 경우, ---> cur_y, cur_x를 i, j로 갱신한다. ---> grid[i][j]를 0으로 갱신한다. 아기 상어의 크기에 해당하는 ... python삼성 기출bojboj [ BOJ / Python ] 21610번 마법사 상어와 비바라기 우선 비구름의 위치를 나타낼 리스트 clouds를 False로 채워 2차원으로 선언한 후에 초기 비구름의 위치인 clouds[n-1][0], clouds[n-1][1], clouds[n-2][0], clouds[n-2][1]를 True로 갱신해야 한다. 비구름을 생성하는 make_clouds 함수 비구름을 움직이는 move_clouds 함수 make_clouds 함수는 먹구름 리스트를 순회하... python삼성 기출bojboj
[ BOJ / Python ] 14890번 경사로 이번 문제는 삼성 기출 문제로, 조건들을 따져가며 구현하는 방식으로 해결하였다. 컬럼을 확인하는 함수 chk_column과 로우를 확인하는 함수 chk_row를 작성하였다. 아래에서 위로 향하며 연속되는 수의 갯수를 DP를 이용하여 dp1에 저장한다. 위에서 아래로 향하며 연속되는 수의 갯수를 DP를 이용하여 dp2에 저장한다. 아래에서 위로 향하며 인접한 값과 비교하며 1 차이가 날 경우에... 삼성 기출pythonbojboj [ BOJ / Python ] 15683번 감시 이번 문제는 삼성 기출 문제로 백트레킹과 구현을 통해 해결하였다. 처음에 백트레킹을 생각했지만, 브루트포스로도 해결이 가능할 것이라 생각하였고, 브루트포스로 구현을 하였다. cctv의 위치와 종류를 튜플로 하여 cctvs리스트에 담고, 이를 종류의 내림차순으로 정렬한 후에 cctv가 볼 수 있는 구간의 크기를 모두 구하여 이 중 큰 것을 따라가도록 구현하였다. 그러나 17%에서 오답처리 되었... 삼성 기출back trackingpythonbojback tracking [ BOJ / Python ] 17142번 연구소 3 바이러스들의 위치를 저장할 리스트 viruses를 선언한다. n번 반복하는 i에 대한 for문을 돌린다. -> n번 반복하는 j에 대한 for문을 돌린다. --> 만약 grid[i][j]가 2와 같을 경우, ---> viruses에 (i, j)를 넣는다. combinations를 저장할 리스트 cases를 선언한다. get_combs 함수를 cur, result를 인자로 갖도록 선언한다. -... python삼성 기출bojback trackingBFSBFS [ BOJ / Python ] 16234번 인구 이동 이번 문제는 삼성 기출 문제로 BFS를 통해 개방할 수 있는 국경선들을 모두 체크하고, 현재 위치의 나라와 연결된 모든 나라들을 구하여 그 나라들의 인구수를 평균값으로 갱신해준다. n, l, r을 입력받는다. ground를 입력받는다. dy, dx에 4가지 방향을 저장한다. bfs함수를 sy, sx를 인자로 갖도록 선언한다. -> q를 deque로 선언한다. -> q에 (sy, sx)를 넣는... 삼성 기출pythonBFSbojBFS [ BOJ / Python ] 17140번 이차원 배열과 연산 인덱스 에러가 계속 발생하였는데, 이는 a[r][c]를 검사하는 과정에서 행, 열의 길이가 r, c보다 작을 때 발생하는 것이었다. 이 부분은 검사를 하기 전에 행과 열의 길이가 r, c보다 클 경우에만 a[r][c]를 검사하도록 하여 해결하였다. r, c, k를 입력받는다. 결과를 저장할 변수 answer를 0으로 선언한다. cul_r 함수를 선언한다. -> a의 길이만큼 반복하는 i에 대... 삼성 기출pythonbojboj [ BOJ / Python ] 20055번 컨베이어 벨트 위의 로봇 이번 문제는 deque를 이용하여 해결하였다. 우선 조건대로 deque의 rotate()함수를 이용하여 벨트와 로봇을 한칸씩 이동시키고, n-1인덱스에 위치하는 로봇을 없애준다. 그리고 로봇 리스트를 뒤에서부터 순회하며 다음 칸에 로봇이 없고 다음 칸의 내구도가 0보다 클 때에만 로봇을 한칸 이동시켜준다. 이때에도 로봇이 n-1인덱스에 위치하게 될 수 있으므로 n-1위의 로봇을 없애준다. 그... python삼성 기출bojDequeDeque [ BOJ / Python ] 13458번 시험 감독 이번 문제는 반복문 하나로 간단하게 해결할 수 있었다. 반복문 안에서 현재 시험장에서 b를 빼주고, 만약 현재 시험장의 학생 수가 0보다 클 경우에만 시험장의 학생 수가 c로 나눠 떨어진다면 몫을 결과 변수에 더하고, 나눠떨어지지 않으면 몫+1을 결과 변수에 더했다. n을 입력받는다. 시험장의 학생 수를 나타내는 리스트 student를 입력받는다. b, c를 입력받는다. 결과 변수 answe... python삼성 기출bojboj [ BOJ / Python ] 16236번 아기 상어 n을 입력받는다. 공간을 grid에 입력받는다. 상어의 위치를 나타내는 변수 cur_y, cur_x를 0으로 선언한다. n번 반복하는 i에 대한 for문을 돌린다. -> n번 반복하는 j에 대한 for문을 돌린다. --> 만약 grid[i][j]가 9일 경우, ---> cur_y, cur_x를 i, j로 갱신한다. ---> grid[i][j]를 0으로 갱신한다. 아기 상어의 크기에 해당하는 ... python삼성 기출bojboj [ BOJ / Python ] 21610번 마법사 상어와 비바라기 우선 비구름의 위치를 나타낼 리스트 clouds를 False로 채워 2차원으로 선언한 후에 초기 비구름의 위치인 clouds[n-1][0], clouds[n-1][1], clouds[n-2][0], clouds[n-2][1]를 True로 갱신해야 한다. 비구름을 생성하는 make_clouds 함수 비구름을 움직이는 move_clouds 함수 make_clouds 함수는 먹구름 리스트를 순회하... python삼성 기출bojboj